package reflect.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 *  java提供了一些元注解，用于说明我们定义的注解的相关事宜
 *  @Target注解，用于指明我们定义的注解可以被应用在哪里，它对应ElementType枚举
 *             常见值:
 *             ElementType.TYPE:注解可以被应用在类，接口，枚举等地方
 *             ElementType.METHOD:注解可以被应用在方法上
 *             ElementType.FIELD:注解可以被应用在属性上
 *             ElementType.CONSTRUCTOR:注解可以被应用在构造方法上
 *             ...
 *  @Retention:用于指明当前注解的保留级别，级别有三个:
 *             RetentionPolicy.SOURCE:注解只保留在源代码中，编译器不会保留
 *             RetentionPolicy.CLASS:注解保留在class文件中，但不会保留在运行时(默认的保留级别)
 *             RetentionPolicy.RUNTIME:注解保留在运行时，【可以通过反射获取注解信息】
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface AutoRunClass {
}








